Grid Search এবং Random Search হলো দুইটি জনপ্রিয় এবং কার্যকরী পদ্ধতি যেগুলো মডেল টিউনিং, বিশেষত হাইপারপ্যারামিটার অপটিমাইজেশন (Hyperparameter Optimization) এর জন্য ব্যবহৃত হয়। এই দুটি পদ্ধতি মেশিন লার্নিং মডেলের পারফরম্যান্স উন্নত করার জন্য ব্যবহৃত হয়। চলুন, প্রতিটি পদ্ধতির বিস্তারিত আলোচনা করি।
১. Grid Search
Grid Search একটি ব্রুট-ফোর্স পদ্ধতি যা নির্দিষ্ট পরিসরে সম্ভাব্য সব হাইপারপ্যারামিটার কম্বিনেশন পরীক্ষা করে এবং সেরা পারফরম্যান্স প্রদানকারী সেটটি নির্বাচন করে।
কীভাবে কাজ করে:
- Grid Search একটি নির্দিষ্ট পরিসরে বা তালিকায় সব হাইপারপ্যারামিটার কম্বিনেশন পরীক্ষা করে। উদাহরণস্বরূপ, আপনি যদি শিখন হার (learning rate) এর জন্য {0.001, 0.01, 0.1} এবং গাছের সংখ্যা (n_estimators) এর জন্য {10, 50, 100} নির্বাচন করেন, তবে এটি মোট 9টি কম্বিনেশন পরীক্ষা করবে (3 × 3 = 9)।
- এই সমস্ত কম্বিনেশন পরীক্ষা করা হয় এবং সবচেয়ে ভালো ফলাফল দেয় এমন হাইপারপ্যারামিটার সেট নির্বাচন করা হয়।
সুবিধা:
- সম্পূর্ণ পরীক্ষা: Grid Search সব কম্বিনেশন পরীক্ষা করে, তাই আপনি নিশ্চিত হতে পারেন যে আপনি সেরা প্যারামিটার পেয়েছেন।
- সহজ ব্যবহার: এটি অত্যন্ত সরল এবং সহজ পদ্ধতি, যা প্রয়োগে জটিল নয়।
সীমাবদ্ধতা:
- কম্পিউটেশনাল খরচ: এটি অনেক সময় সাপেক্ষ হতে পারে, বিশেষ করে যখন আপনি বড় পরিসরে কম্বিনেশন পরীক্ষা করেন।
- অনেক সময় প্রয়োজন: পুরো পরিসর পরীক্ষা করা হলে সময় ও কম্পিউটেশনাল খরচ বেশি হতে পারে।
Grid Search উদাহরণ:
from sklearn.model_selection import GridSearchCV
from sklearn.ensemble import RandomForestClassifier
from sklearn.datasets import load_iris
# ডেটাসেট লোড
data = load_iris()
X = data.data
y = data.target
# মডেল তৈরি
model = RandomForestClassifier()
# হাইপারপ্যারামিটার গ্রিড
param_grid = {
'n_estimators': [10, 50, 100],
'max_depth': [None, 10, 20, 30]
}
# Grid Search প্রয়োগ
grid_search = GridSearchCV(estimator=model, param_grid=param_grid, cv=5)
grid_search.fit(X, y)
# সেরা প্যারামিটার
print("Best parameters using Grid Search:", grid_search.best_params_)
২. Random Search
Random Search হলো একটি এলোমেলো পদ্ধতি যেখানে হাইপারপ্যারামিটার স্পেসে এলোমেলোভাবে কিছু কম্বিনেশন পরীক্ষা করা হয় এবং যেটি সবচেয়ে ভালো পারফরম্যান্স দেয় তা নির্বাচন করা হয়।
কীভাবে কাজ করে:
- Random Search একটি নির্দিষ্ট পরিসরে এলোমেলো কিছু হাইপারপ্যারামিটার কম্বিনেশন নির্বাচন করে এবং তাদের পরীক্ষা করে।
- উদাহরণস্বরূপ, আপনি যদি শিখন হার (learning rate) এর জন্য {0.001, 0.01, 0.1} এবং গাছের সংখ্যা (n_estimators) এর জন্য {10, 50, 100} নির্বাচন করেন, তবে এটি এলোমেলোভাবে 3টি কম্বিনেশন নির্বাচন করবে এবং তাদের পরীক্ষা করবে।
সুবিধা:
- দ্রুত: এটি Grid Search এর তুলনায় অনেক দ্রুত কাজ করতে পারে, কারণ এটি পুরো স্পেস পরীক্ষা না করে এলোমেলো কিছু কম্বিনেশন পরীক্ষা করে।
- কম্পিউটেশনাল খরচ কম: Random Search অনেক কম কম্পিউটেশনাল খরচে কার্যকরী ফলাফল দিতে পারে।
সীমাবদ্ধতা:
- সর্বোচ্চ কম্বিনেশন চিহ্নিত না হওয়া: এটি পুরো স্পেস পরীক্ষা না করে, তাই কখনও কখনও আপনি সেরা পারফরম্যান্স দিতে পারে এমন হাইপারপ্যারামিটার কম্বিনেশন মিস করতে পারেন।
- কম নির্ভুল: কিছু ক্ষেত্রে, এটি কম নির্ভুল ফলাফল দিতে পারে কারণ এটি পূর্ণ পরিসর পরীক্ষা না করে।
Random Search উদাহরণ:
from sklearn.model_selection import RandomizedSearchCV
from sklearn.ensemble import RandomForestClassifier
from sklearn.datasets import load_iris
import numpy as np
# ডেটাসেট লোড
data = load_iris()
X = data.data
y = data.target
# মডেল তৈরি
model = RandomForestClassifier()
# হাইপারপ্যারামিটার ডিস্ট্রিবিউশন
param_dist = {
'n_estimators': [10, 50, 100, 200],
'max_depth': [None, 10, 20, 30, 50]
}
# Random Search প্রয়োগ
random_search = RandomizedSearchCV(estimator=model, param_distributions=param_dist, n_iter=10, cv=5)
random_search.fit(X, y)
# সেরা প্যারামিটার
print("Best parameters using Random Search:", random_search.best_params_)
Grid Search vs Random Search
| প্যারামিটার | Grid Search | Random Search |
|---|---|---|
| পরীক্ষিত কম্বিনেশন | পূর্ণ স্পেস, নির্দিষ্ট পরিসরের মধ্যে সব কম্বিনেশন পরীক্ষা | এলোমেলোভাবে কিছু কম্বিনেশন পরীক্ষা |
| কম্পিউটেশনাল খরচ | বেশি, কারণ সব কম্বিনেশন পরীক্ষা করতে হয় | কম, কারণ এলোমেলোভাবে কিছু কম্বিনেশন পরীক্ষা করা হয় |
| প্রযুক্তিগত সুবিধা | সুনির্দিষ্ট ফলাফল এবং পুরো স্পেস পরীক্ষা | দ্রুত ফলাফল, বৃহৎ স্পেসের জন্য উপযুক্ত |
| অ্যাপ্লিকেশন | ছোট বা মাঝারি স্পেসে কার্যকরী, যখন আমরা জানি কী প্যারামিটার ব্যবহৃত হবে | বৃহৎ স্পেসে কার্যকরী, যেখানে সম্পূর্ণ স্পেস পরীক্ষা করা সম্ভব নয় |
উপসংহার:
- Grid Search একটি সুনির্দিষ্ট এবং পুঙ্খানুপুঙ্খ পদ্ধতি, তবে এটি বেশি সময় এবং খরচের হতে পারে।
- Random Search দ্রুত এবং কম্পিউটেশনাল খরচে কার্যকরী হতে পারে, তবে এটি সর্বোচ্চ পারফরম্যান্সের জন্য উপযুক্ত নাও হতে পারে।
উভয় পদ্ধতি হাইপারপ্যারামিটার অপটিমাইজেশনে ব্যবহৃত হয় এবং আপনার মডেলের কার্যকারিতা উন্নত করতে সাহায্য করে।
Read more